* "camd.library"
##base _CamdBase
##bias 30
##public
*
* --------------------- Locks
*
LockCAMD(locktype)(d0)
UnlockCAMD(lock)(a0)
*
* --------------------- MidiNode
*
CreateMidiA(name,tags)(a0)
DeleteMidi(mi)(a0)
SetMidiAttrsA(mi,tags)(a0/a1)
GetMidiAttrsA(mi,tags)(a0/a1)
NextMidi(mi)(a0)
FindMidi(name)(a1)
FlushMidi(mi)(a0)
*
* --------------------- MidiLink
*
AddMidiLinkA(mi,type,tags)(a0,d0,a1)
RemoveMidiLink(ml)(a0)
SetMidiLinkAttrsA(ml,tags)(a0/a1)
GetMidiLinkAttrsA(ml,tags)(a0/a1)
NextClusterLink(mc,ml,type)(a0/a1,d0)
NextMidiLink(mi,ml,type)(a0/a1,d0)
MidiLinkConnected(ml)(a0)
*
* --------------------- MidiCluster
*
NextCluster(mc)(a0)
FindCluster(name)(a0)
*
* --------------------- Message
*
PutMidi(ml,msgdata)(a0,d0)
GetMidi(mi,msg)(a0/a1)
WaitMidi(mi,msg)(a0/a1)
PutSysEx(ml,buffer)(a0,a1)
GetSysEx(mi,buffer,len)(a0/a1,d0)
QuerySysEx(mi)(a0)
SkipSysEx(mi)(a0)
GetMidiErr(mi)(a0)
MidiMsgType(msg)(a0)
MidiMsgLen(status)(d0)
ParseMidi(ml,buffer,length)(a0/a1,d0)
*
* --------------------- Device
*
OpenMidiDevice(name)(a0)
CloseMidiDevice(mdd)(a0)
*
* --------------------- External functions
*
RethinkCAMD()()
StartClusterNotify(node)(a0)
EndClusterNotify(node)(a0)
##private
PutMidiNoWait(ml,msg)(a0/a1)
##public
*
##end
